package com.tjh.spring5.service;

import com.tjh.spring5.dao.TransactionalUserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * day31：
 *      编程式事务管理 过程说明
 */
@Service
public class UserService_day32 {

    //注入dao
    @Autowired
    private TransactionalUserDao userDao;

    //转账的方法
    public void accountMoney() {
        try {
            //第一步 开启事务

            //第二步 进行业务操作
            //lucy少100
            userDao.reduceMoney();

            //模拟异常
            int i = 10 / 0;

            //mary多100
            userDao.addMoney();

            //第三步 没有发生异常，提交事务
        } catch (Exception e) {
            //第四步 出现异常，事务回滚
        }
    }
}
